HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
clear_fixmap(FIX_SHARED_INFO);
+ xen_start_info.store_mfn = mfn_to_pfn(xen_start_info.store_mfn);
+ xen_start_info.console_mfn = mfn_to_pfn(xen_start_info.console_mfn);
+
/* We'll stop somewhere inside this hypercall. When it returns,
we'll start resuming after the restore. */
HYPERVISOR_suspend(virt_to_mfn(xen_start_info));
/* base of the region in which domain memory is mapped */
unsigned char *region_base = NULL;
- /* A temporary mapping of the guest's start_info page. */
- start_info_t *start_info = NULL;
-
/* number of pages we're dealing with */
unsigned long nr_pfns;
goto out;
}
- /* Map the suspend-record MFN to pin it. The page must be owned by
- dom for this to succeed. */
- start_info = xc_map_foreign_range(xc_handle, dom, PAGE_SIZE,
- PROT_READ | PROT_WRITE,
- ctxt.user_regs.esi);
- if (!start_info){
- ERR("Couldn't map start_info page");
- goto out;
- }
-
- /* Canonicalize store mfn. */
- if ( !translate_mfn_to_pfn(&start_info->store_mfn) ) {
- ERR("Store frame is not in range of pseudophys map");
- goto out;
- }
-
- /* Canonicalize console mfn. */
- if ( !translate_mfn_to_pfn(&start_info->console_mfn) ) {
- ERR("Console frame is not in range of pseudophys map");
- goto out;
- }
-
print_stats( xc_handle, dom, 0, &stats, 0 );
/* Now write out each data page, canonicalising page tables as we go... */
if(live_shinfo)
munmap(live_shinfo, PAGE_SIZE);
- if(start_info)
- munmap(start_info, PAGE_SIZE);
-
if(live_pfn_to_mfn_frame_list)
munmap(live_pfn_to_mfn_frame_list, PAGE_SIZE);